package br.com.duosoftware.orcamento.daos;

import br.com.duosoftware.orcamento.entidades.PeriodoDePrograma;
import br.com.duosoftware.orcamento.entidades.Programa;
import java.util.List;

/**
 *
 * @author Daniel
 * 
 */

public class PeriodoDeProgramaDAO extends DAOGenerico{
    
    public void salvarOuAtualizar(PeriodoDePrograma periodoDePrograma) {
        super.salvarOuAtualizarPojo(periodoDePrograma);
    }

    public void excluir(PeriodoDePrograma periodoDePrograma) {
        excluirPojo(periodoDePrograma);
    }

    public PeriodoDePrograma getPeriodoDeProgramaPorId(int id) {
        return getPojo(PeriodoDePrograma.class, id);
    }

    public List<PeriodoDePrograma> listarPeriodosDePrograma() {
        return getPojos("FROM PeriodoDePrograma periodoDePrograma");
    }
    
    public List<PeriodoDePrograma> listarPeriodosDePrograma(Programa programa) {
        return getPojos("FROM PeriodoDePrograma periodoDePrograma "
                      + "WHERE periodoDePrograma.programa.id = ?", programa.getId());
    }
    
    public boolean verificarSeExiste(PeriodoDePrograma periodoDePrograma){
        return (getPojoCriterio("FROM PeriodoDePrograma periodoDePrograma WHERE "
                             + "periodoDePrograma.anoInicial = ? "
                             + "AND periodoDePrograma.anoFinal = ?"
                             , periodoDePrograma.getAnoInicial()
                             , periodoDePrograma.getAnoFinal()) != null);
    }
    
}
